<?php

class Application_Model_Atendimento extends Zend_Db_Table
{
    protected $_name    = 'npj.tb_atendimento';
    protected $_primary = array('id_atendimento');

    const ABERTO       = 'A';
    const EM_ANDAMENTO = 'E';
    const CONCLUIDO    = 'C';

    public function buscar($assistido = null, $status = null, $inicio = null, $fim = null)
    {
        $db     = Zend_Db_Table::getDefaultAdapter();
        $select = $db->select()
                     ->from(array('a' => 'npj.tb_atendimento'))
                     ->join(array('p' => 'tb_pessoa'),
                            'a.id_assistido = p.id_pessoa',
                            array('ds_nome'));

        if ($assistido) {
            $select->where('p.ds_nome LIKE ?', $assistido . '%');
        }
        if ($status) {
            $select->where('a.st_atendimento = ?', $status);
        }
        if ($inicio && !$fim) {
            $select->where('a.dt_atendimento >= ?', $this->formataData($inicio));
        } else if (!$inicio && $fim) {
            $select->where('a.dt_atendimento <= ?', $this->formataData($fim));
        } else if ($inicio && $fim) {
            $select->where('a.dt_atendimento >= ?', $this->formataData($inicio))
                   ->where('a.dt_atendimento <= ?', $this->formataData($fim));
        }

        $select->order('a.dt_atendimento DESC');

        return $db->fetchAll($select);
    }

    protected function formataData($data)
    {
        $arr = explode('/', $data);
        return $arr[2] . '-' . $arr[1] . '-' . $arr[0];
    }
}
